package designPatterns.P01_单例模式_Singleton.P01_饿汉式_不推荐;

/**
 * @author d11yu
 */
public class P02_静态代码块 {
    public static void main(String[] args) {
        Singleton1 instance1 = Singleton1.getInstance();
        Singleton1 instance2 = Singleton1.getInstance();
        System.out.println(instance1 == instance2);
        System.out.println("instance1: " + instance1.hashCode());
        System.out.println("instance2: " + instance2.hashCode());
    }
}

/**
 * 优缺点说明：
 *
 * 1)	这种方式和上面的方式其实类似，只不过将类实例化的过程放在了静态代码块中，也是在类装载的时候，就执行静态代码块中的代码，初始化类的实例。优缺点和上面是一样的。
 * 2)	结论：这种单例模式可用，但是可能造成内存浪费
 */
class Singleton1 {
    private static Singleton1 instance;

    static {
        instance = new Singleton1();
    }

    private Singleton1() {
    }

    public static Singleton1 getInstance() {
        return instance;
    }
}